1. Field of the Invention
This invention is related to the field of computer networks and, more particularly, to maintaining the high availability in a computer network which utilizes virtual Internet Protocol (IP) addresses.
2. Description of the Related Art
With the ever expanding use of computer networks throughout society has come an increasing dependence of users on the availability of that network. If a network goes down, or is otherwise unavailable, costs to an enterprise may be significant. Consequently, a number of techniques have arisen which are designed to ensure that a computer network is sufficiently robust that it may detect and respond to problems without significantly impacting users. Frequently, efforts to ensure a computer network is consistently online for its users may be referred to as maintaining xe2x80x9chigh availabilityxe2x80x9d. A computer network which has in place mechanisms which prevent hardware or software problems from impacting its users may be referred to as a High Availability Network (HAnet). Some of the characteristics which may be considered when defining a HAnet include protection of data (Reliability), continuous access to data (Availability), and techniques for correcting problems which minimally impact users (Serviceability). Collectively these characteristics are frequently referred to as RAS.
In some cases it is desirable to create a computer network which utilizes virtual IP addresses. For example, an enterprise may wish to have multiple servers, but does not have the budget to invest in additional hardware. A typical example of such a case is an Internet Service Provider (ISP) who supplies multiple Web servers, but does not wish to provide a separate computer system for every Web server. One well known method of enabling multiple servers on a single machine is through the use of virtual IP addresses. A virtual IP address is a logical address created by a system administrator which typically corresponds to a real interface address. Because the virtual IP address is a logical address, multiple virtual IP addresses may be created which correspond to the same interface. Consequently, multiple Web servers with unique virtual IP addresses may be hosted on a single physical computer.
While using virtual IP addresses may allow an enterprise to host multiple Web servers on a single computer, if that computer is accessed through only a single network connection, the enterprise is at risk of losing network communications in the event that single network connection fails. In some cases, mechanisms may be put in place which detect an error in a network connection and notify the system administrator that a problem exists. The system administrator may then take corrective action, such as switching to a redundant resource. However, such mechanisms typically take some period of time and necessarily involve interruptions in network operation. In other cases, operating system specific mechanisms may be implemented which may facilitate a failover to a redundant connection. Typically these mechanisms operate at layers below the application layer of the protocol stack. Two widely recognized protocols include TCP/IP and ISO/OSI, each of which include a highest layer referred to as the application layer. Other communication protocols with a layer corresponding to the application layer may utilize a different name. Generally, those layers below the application layer involve software and mechanisms which are not portable across different operating systems. Consequently, these solutions are not portable and generally require a newly created mechanism for each platform on which a failover is desired.
The problems outlined above are in large part solved by a method and mechanism as described herein. A method and mechanism of failover is described. The method and mechanism include the addition of a redundant, secondary, network connection which may be utilized in the event of a failure of a primary connection. By utilizing an Application layer mechanism which captures an original virtual IP address configuration, monitors the primary network connection, automatically detects a failure in the primary connection, and switches to the secondary connection in a short period of time, network availability may be maintained. Advantageously, network interruptions may be minimized and servicing of network problems may be automated by a mechanism which is portable across multiple platforms. Further, because the mechanism operates within the application layer of the communication protocol, no modification of existing operating software is necessary.
Broadly speaking, a method for maintaining high availability in a computer network utilizing virtual Internet Protocol (IP) addresses is contemplated. The method includes adding an Application layer High Availability Networking (HAnet) mechanism to a node of the network, adding a second network connection to the node, capturing an original virtual IP address configuration on startup, monitoring a first network connection, detecting a failure of the first network connection, and performing a failover from the first network connection to the second network connection. The monitoring, capturing, failure detection, and failover are all performed by the HAnet mechanism.
Also contemplated is a network node which includes a first network interface, a second network interface, and a High Availability Networking (HAnet) mechanism. The included HAnet mechanism operates at the Application layer and is configured to capture the original virtual IP address configuration of the first network interface on startup and monitor the first network interface. If a failure of the first network interface is detected, the HAnet mechanism is configured to perform a failover from the first network interface to the second network interface.
Further contemplated is a computer network configured to maintain high availability. The network includes a first node coupled to a network device by a first network connection. The first node includes a High Availability Networking (HAnet) mechanism which operates at the Application layer. The HAnet mechanism is configured to capture the original virtual IP address configuration of the first node, monitor the first network connection and perform a failover from the first network connection to the second network connection in response to detecting a failure of the first network connection.